package com.ssy.lingxi.after.sale.model.vo.response;

import com.ssy.lingxi.after.sale.model.bo.EvaluateBO;
import com.ssy.lingxi.after.sale.model.bo.ProofFileBO;
import com.ssy.lingxi.after.sale.model.bo.ReceiveGoodsBO;
import com.ssy.lingxi.after.sale.model.vo.request.ManualDeliveryGoodsVO;

import java.io.Serializable;
import java.util.List;

/**
 * 退货申请详情
 * @author 伍将
 * @date 2020/9/4
 * @version 2.0.0
 */
public class ReturnGoodsDetailVO implements Serializable {
    private static final long serialVersionUID = 5702119604540094986L;

    /**
     * 退货id
     */
    private Long returnId;

    /**
     * 申请单号
     */
    private String applyNo;

    /**
     * 申请摘要
     */
    private String applyAbstract;

    /**
     * 采购商会员名称
     */
    private String consumerName;

    /**
     * 采购商会员id
     */
    private Long memberId;

    /**
     * 采购商会员角色id
     */
    private Long roleId;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 供应商会员id
     */
    private Long parentMemberId;

    /**
     * 供应商会员角色id
     */
    private Long parentMemberRoleId;

    /**
     * 单据时间
     */
    private String applyTime;

    /**
     * 内部状态
     * 待提交退货申请单 - 1
     * 审核通过(提交) - 2
     * 审核不通过(提交) - 24
     * 审核通过(一级) - 3
     * 审核不通过(一级) - 25
     * 审核通过(二级) - 4
     * 审核不通过(二级) - 5
     * 审核通过(确认) - 6
     * 审核不通过(确认) - 7
     * 待新增退货发货单 - 8
     * 待审核退货发货单 - 9
     * 采购商待新增物流单 - 10
     * 采购商待确认物流单 - 11
     * 待确认退货发货 - 12
     * 待新增退货入库单 - 13
     * 待审核退货入库单 - 14
     * 待确认退货收货 - 15
     * 待确认退货回单 - 16
     * 待退款 - 17
     * 待确认退款 - 18
     * 退款失败 - 19
     * 退款成功 - 20
     * 待确认售后完成 - 21
     * 确认售后完成 - 22
     * 不接受物流单 - 23
     */
    private Integer innerStatus;

    /**
     * 内部状态名称
     */
    private String innerStatusName;

    /**
     * 外部状态
     * 待提交申请单 - 1
     * 待确认申请单（已提交申请单） - 2
     * 待平台确认申请单 - 21
     * 不接受申请（确认申请单） - 3
     * 接受申请（确认申请单） - 4
     * 待新增退货发货单（确认申请单后） - 5
     * 采购商待新增物流单（新增换货发货单审核通过） - 6
     * 待退货发货（新增物流单审核通过） - 7
     * 待新增退货入库单（已退货发货） - 8
     * 待退货收货（已新增换货入库单） - 9
     * 待确认退货回单（已换货收货） - 10
     * 待退款(确认退货回单) - 11
     * 待确认退款(退款) - 12
     * 确认退款未到账 - 13
     * 待确认售后完成(确认退款) - 14
     * 售后完成 - 15
     */
    private Integer outerStatus;

    /**
     * 外部状态名称
     */
    private String outerStatusName;

    /**
     * 任务类型:18：默认，31：手工发货:, 43：合同, 44：合同手工发货
     */
    private Integer taskType;
    /**
     * 任务key.
     */
    private String taskTypeKey;

    /**
     * 手工退货发货地址
     */
    private ManualDeliveryGoodsVO manualReturnGoodsAddress;

    /**
     * 相关故障文件
     */
    private List<ProofFileBO> faultFileList;

    /**
     * 退货地址
     */
    private ReceiveGoodsBO returnGoodsAddress;

    /**
     * 评价
     */
    private EvaluateBO evaluate;

    /**
     * 外部流转
     */
    private List<TaskStepVO> outerTaskList;

    /**
     * 内部流转
     */
    private List<TaskStepVO> innerTaskList;

    /**
     * 外部单据流转记录
     */
    private List<ReturnOuterWorkflowRecordVO> outerRecordList;

    /**
     * 内部单据流转记录
     */
    private List<ReturnInnerWorkflowRecordVO> innerRecordList;

    /**
     * 退货批次
     */
    private Integer returnBatch;

    /**
     * 退货商品明细
     */
    private List<ReturnGoodsDetailQueryVO> goodsDetailList;

    /**
     * 退货统计
     */
    private List<ReturnGoodsStatisticsVO> returnStatisticsList;

    /**
     * 退货明细
     */
    private List<DeliveryGoodsVO> returnDeliveryGoodsList;

    /**
     * 退款明细
     */
    private List<ReturnGoodsRefundVO> refundList;

    /**
     * 订单类型
     */
    private Integer orderType;
    /**
     * 退货原因
     */
    private String returnReason;
    /**
     * 店铺名称
     */
    private String shopName;
    /**
     * 店铺Id
     */
    private Long shopId;
    /**
     * 店铺Logo
     */
    private String shopLogo ;

    /**
     * AgentFlagEnum
     * 代客标识: 0 - 非代客； 1 - 代客
     */
    private Integer agentFlag;

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Long getParentMemberId() {
        return parentMemberId;
    }

    public void setParentMemberId(Long parentMemberId) {
        this.parentMemberId = parentMemberId;
    }

    public Long getParentMemberRoleId() {
        return parentMemberRoleId;
    }

    public void setParentMemberRoleId(Long parentMemberRoleId) {
        this.parentMemberRoleId = parentMemberRoleId;
    }

    public Integer getTaskType() {
        return taskType;
    }

    public void setTaskType(Integer taskType) {
        this.taskType = taskType;
    }

    public String getTaskTypeKey() {
        return taskTypeKey;
    }

    public void setTaskTypeKey(String taskTypeKey) {
        this.taskTypeKey = taskTypeKey;
    }

    public ManualDeliveryGoodsVO getManualReturnGoodsAddress() {
        return manualReturnGoodsAddress;
    }

    public void setManualReturnGoodsAddress(ManualDeliveryGoodsVO manualReturnGoodsAddress) {
        this.manualReturnGoodsAddress = manualReturnGoodsAddress;
    }

    public List<ReturnGoodsRefundVO> getRefundList() {
        return refundList;
    }

    public void setRefundList(List<ReturnGoodsRefundVO> refundList) {
        this.refundList = refundList;
    }

    public List<DeliveryGoodsVO> getReturnDeliveryGoodsList() {
        return returnDeliveryGoodsList;
    }

    public void setReturnDeliveryGoodsList(List<DeliveryGoodsVO> returnDeliveryGoodsList) {
        this.returnDeliveryGoodsList = returnDeliveryGoodsList;
    }

    public List<ReturnGoodsStatisticsVO> getReturnStatisticsList() {
        return returnStatisticsList;
    }

    public void setReturnStatisticsList(List<ReturnGoodsStatisticsVO> returnStatisticsList) {
        this.returnStatisticsList = returnStatisticsList;
    }

    public List<ReturnGoodsDetailQueryVO> getGoodsDetailList() {
        return goodsDetailList;
    }

    public void setGoodsDetailList(List<ReturnGoodsDetailQueryVO> goodsDetailList) {
        this.goodsDetailList = goodsDetailList;
    }

    public Long getReturnId() {
        return returnId;
    }

    public void setReturnId(Long returnId) {
        this.returnId = returnId;
    }

    public String getApplyNo() {
        return applyNo;
    }

    public void setApplyNo(String applyNo) {
        this.applyNo = applyNo;
    }

    public String getApplyAbstract() {
        return applyAbstract;
    }

    public void setApplyAbstract(String applyAbstract) {
        this.applyAbstract = applyAbstract;
    }

    public String getConsumerName() {
        return consumerName;
    }

    public void setConsumerName(String consumerName) {
        this.consumerName = consumerName;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getApplyTime() {
        return applyTime;
    }

    public void setApplyTime(String applyTime) {
        this.applyTime = applyTime;
    }

    public Integer getInnerStatus() {
        return innerStatus;
    }

    public void setInnerStatus(Integer innerStatus) {
        this.innerStatus = innerStatus;
    }

    public String getInnerStatusName() {
        return innerStatusName;
    }

    public void setInnerStatusName(String innerStatusName) {
        this.innerStatusName = innerStatusName;
    }

    public Integer getOuterStatus() {
        return outerStatus;
    }

    public void setOuterStatus(Integer outerStatus) {
        this.outerStatus = outerStatus;
    }

    public String getOuterStatusName() {
        return outerStatusName;
    }

    public void setOuterStatusName(String outerStatusName) {
        this.outerStatusName = outerStatusName;
    }

    public List<ProofFileBO> getFaultFileList() {
        return faultFileList;
    }

    public void setFaultFileList(List<ProofFileBO> faultFileList) {
        this.faultFileList = faultFileList;
    }

    public ReceiveGoodsBO getReturnGoodsAddress() {
        return returnGoodsAddress;
    }

    public void setReturnGoodsAddress(ReceiveGoodsBO returnGoodsAddress) {
        this.returnGoodsAddress = returnGoodsAddress;
    }

    public Integer getReturnBatch() {
        return returnBatch;
    }

    public void setReturnBatch(Integer returnBatch) {
        this.returnBatch = returnBatch;
    }

    public EvaluateBO getEvaluate() {
        return evaluate;
    }

    public void setEvaluate(EvaluateBO evaluate) {
        this.evaluate = evaluate;
    }

    public List<TaskStepVO> getOuterTaskList() {
        return outerTaskList;
    }

    public void setOuterTaskList(List<TaskStepVO> outerTaskList) {
        this.outerTaskList = outerTaskList;
    }

    public List<TaskStepVO> getInnerTaskList() {
        return innerTaskList;
    }

    public void setInnerTaskList(List<TaskStepVO> innerTaskList) {
        this.innerTaskList = innerTaskList;
    }

    public List<ReturnOuterWorkflowRecordVO> getOuterRecordList() {
        return outerRecordList;
    }

    public void setOuterRecordList(List<ReturnOuterWorkflowRecordVO> outerRecordList) {
        this.outerRecordList = outerRecordList;
    }

    public List<ReturnInnerWorkflowRecordVO> getInnerRecordList() {
        return innerRecordList;
    }

    public void setInnerRecordList(List<ReturnInnerWorkflowRecordVO> innerRecordList) {
        this.innerRecordList = innerRecordList;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public Long getRoleId() {
        return roleId;
    }

    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }

    public String getReturnReason() {
        return returnReason;
    }

    public void setReturnReason(String returnReason) {
        this.returnReason = returnReason;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public String getShopLogo() {
        return shopLogo;
    }

    public void setShopLogo(String shopLogo) {
        this.shopLogo = shopLogo;
    }

    public Integer getAgentFlag() {
        return agentFlag;
    }

    public void setAgentFlag(Integer agentFlag) {
        this.agentFlag = agentFlag;
    }
}
